Copyright(C) 1994 Terumasa KODAKA , Takeshi KONO ■プリンタBIOS プリンタインターフェースの概要 o IEEE STD 1284搭載機は、PC-9801BA2・BS2・BX2・NS/A, PC-9821Ap2・As2・Bf・Bp・ Bs・Be・Ts・Cs2・Ce2(PC-H98以外でプリンタコネクタに36Pハーフピッチ アンフェノールコネクタを使用している機種)。 u IEEE STD 1284搭載機に98ハイレゾボード(PC-9821A-E02を実装したときは、 必ず98ハイレゾボード上のプリンタインターフェースが使用される。この ため、ノーマルモードのときは簡易セントロニクス専用、ハイレゾモードの ときはフルセントロニクス専用となる。 o IEEE STD 1284搭機(ノーマル)と、PC-H98(ノーマル)では、プリンタ インターフェースをフルセントロニクスモードに切り替えることができる。 このとき、ハイレゾ用のファンクションは使用できないが、BIOS実行後に 返される終了ステータスはハイレゾのフルセントロニクスと同じになるので 注意が必要である。このため、終了ステータスは簡易セントロニクスと フルセントロニクスで分類してある。 u フルセントロニクスモードでEPSONプリンタを接続するときには、EPSON製の ケーブルを使う必要がある。EPSONプリンタは、セントロニクス インターフェースの+5Vを出力する端子番号がPC-PRシリーズと違うので、 NEC製ケーブルを使用するとプリンタの電源ONを認識できないためである。 表 使用可能なプリンタインターフェースと機種の対応 ----------------------+----------+---------+-----------+----------- 機種タイプ |入出力機能|フルセントロニクス|簡易セントロニクス|ODAプリンタ ----------------------+----------+---------+-----------+----------- IEEE STD 1284搭載機 | ○ | ○ | ○ | × ----------------------+----------+---------+-----------+----------- PC-H98ノーマル | × | ○ | ○ | × ----------------------+----------+---------+-----------+----------- ハイレゾ(PC-H98を含む)| × | ○ | × | × ----------------------+----------+---------+-----------+----------- ノーマル(PC-H98を除く)| × | × | ○ | × ----------------------+----------+---------+-----------+----------- PC-98LT・HA | × | × | ○ | × ----------------------+----------+---------+-----------+----------- PC-9801初代・E・F・M | × | × | ○ | ○ ----------------------+----------+---------+-----------+----------- * PC-9801初代・E・F・Mは、メモリスイッチ3 bit 5=1のとき、ODAプリンタ インターフェース(PC-9801-05)を使用する。PC-9801E・F・MでODAプリンタが 使用できることはUndocumented。 * PC-9801U・VM2・VFでは、メモリスイッチ3 bit 5=1のとき、プリンタBIOSを 実行すると、AH=00hでなにもせずに戻る。 INT 1Ah - Function 10h 分類 PRINTER BIOS 名前 初期化 対象 ノーマル,ハイレゾ,PC-98LT・HA 入力 AH=10h 出力 ■簡易セントロニクスモード AH=終了ステータス 00h: プリンタBUSY 01h: データ送信可 ■フルセントロニクスモード AH=終了ステータス 00h: データ送信可能 01h: BUSY 03h: オフライン 04h: ペーパーエンド 05h: プリンタ未接続または電源OFF AL=プリンタポートステータス(INT 1Ah - Function 12h参照) 解説 o プリンタインターフェースの初期化を行う。 このファンクションを実行しても、プリンタインターフェースのモードは 変化しない。 o ハイレゾモードでは、プリンタBUSYのウェイト時間を4秒に設定する。 o フルセントロニクスモードでは、INPUT PRIMEを26ms以上の期間 アクティブにする。 u プリンタBIOSでは、システム起動後、このファンクションを実行しなくても 送信などのファンクションを使用できる。ただし、ハイレゾモードでは、 起動後のプリンタBUSYのウェイト時間の初期値は0(タイムアウトしない)に 設定されている。 o AH,ALには現在のプリンタの状態が返る。 o 簡易セントロニクスモードでは、プリンタ電源OFFまたはプリンタ未接続の とき、それを検出しないためAH=01hで戻る。簡易セントロニクスモードは BUSY状態しか検出できない。 関連 0000:041Ch[ハイレゾ] INT 1Ah - Function 11h 分類 PRINTER BIOS 名前 データの出力(ウェイトモード) 対象 ノーマル,ハイレゾ,PC-98LT・HA 入力 AH=11h AL=出力データ 出力 ■簡易セントロニクスモード AH=終了ステータス 01h: データ送信完了 02h: タイムアウトで送信できなかった AL=不定 ■フルセントロニクスモード AH=終了ステータス 00h: データ送信完了 02h: タイムアウトで送信できなかった 03h: オフライン 04h: ペーパーエンド 05h: プリンタ未接続または電源OFF AL=プリンタポートステータス(INT 1Ah - Function 12h参照) 解説 o プリンタにデータ送信が可能なとき、1バイトのデータを出力する。 一定時間BUSY状態が続くと、タイムアウトしてリターンする。 ハイレゾモードでは、タイムアウト時間をINT 1Ah - Function 16hで 設定可能。 o 簡易セントロニクスモードでは、プリンタ電源OFFまたはプリンタ未接続の とき、それを検出しないためAH=01hで戻る。簡易セントロニクスモードは BUSY状態しか検出できない。 u テクニカルデータブックには、簡易セントロニクスモードでプリンタBUSYの ときAH=00hになるという記述があるが、実際には00hが返されることはない。 関連 INT 1Ah - Function 16h INT 1Ah - Function 30h 0000:041Ch[ハイレゾ] I/O 0040h I/O 0140h[IEEE STD 1284搭載機] INT 1Ah - Function 12h 分類 PRINTER BIOS 名前 ステータスの取得 対象 ノーマル,ハイレゾ,PC-98LT・HA 入力 AH=12h 出力 ■簡易セントロニクスモード AH=終了ステータス 00h: プリンタBUSY 01h: データ送信可 ■フルセントロニクスモード AH=終了ステータス 00h: データ送信可能 01h: BUSY 03h: オフライン 04h: ペーパーエンド 05h: プリンタ未接続または電源OFF AL=プリンタポートステータス bit 7: SELECT 1= SELECTがインアクティブ(オフライン) 0= SELECTがアクティブ(オンライン) bit 6: FAULT 1= FAULTがインアクティブ 0= FAULTがアクティブ(印字不可) bit 5: PE 1= PEがインアクティブ 0= PEがアクティブ(用紙切れ) bit 4: DC+5V 1= DC+5Vがインアクティブ(電源OFF) 0= DC+5Vがアクティブ(電源ON) bit 3: INPUT BUSY 1= INPUT BUSYがインアクティブ 0= INPUT BUSYがアクティブ * IEEE STD 1284搭載機は、BUSYと連動 bit 2: BUSY 1= BUSYがインアクティブ(データ受信可) 0= BUSYがアクティブ(データ受信不可) bit 1: ACK-R 1= ACK-Rがアクティブ 0= ACK-Rがインアクティブ * IEEE STD 1284搭載機は、常に0 bit 0: ACK 1= ACKがインアクティブ 0= ACKがアクティブ 解説 o プリンタの状態を通知する。 o 簡易セントロニクスモードでは、プリンタ電源OFFまたはプリンタ未接続の とき、それを検出しないためAH=01hで戻る。簡易セントロニクスモードは BUSY状態しか検出できない。 関連 I/O 0042h I/O 0141h[IEEE STD 1284搭載機] INT 1Ah - Function 13h 分類 PRINTER BIOS 名前 機能なし 対象 ノーマル,ハイレゾ,PC-98LT・HA 入力 AH=13h 出力 なし 解説 o 関連 INT 1Ah - Function 14h 分類 PRINTER BIOS 名前 データの出力(ノーウェイトモード) 対象 ハイレゾ 入力 AH=14h AL=出力するデータ 出力 AH=終了ステータス 00h: データ送信完了 02h: タイムアウトで送信できなかった 03h: オフライン 04h: ペーパーエンド 05h: プリンタ未接続または電源OFF AL=プリンタポートステータス(INT 1Ah - Function 12h参照) 解説 o プリンタにデータ送信が可能なとき、1バイトのデータを出力する。 u このファンクションは、以下のような処理を行う。 1. 最初にプリンタのステータスを調べる。 2. ステータスが00h(データ送信可能)であれば、INT 1Ah - Function 11hの 処理ルーチンにジャンプ。 3. ステータスが01h(BUSY)のときは、まずAL=08hでINT 1Fh - Function 82hを 実行。その後、INT 1Ah - Function 11hの処理ルーチンにジャンプ。 4. ステータスがその他の値のときは、AHに終了ステータス(03〜05h)をセット してリターン。 関連 INT 1Ah - Function 11h INT 1Fh - Function 82h INT 1Ah - Function 15h 分類 PRINTER BIOS 名前 データの出力(チェックレスモード) 対象 ハイレゾ 入力 AH=15h AL=出力するデータ 出力 AH=終了ステータス 00h: データ送信完了 01h: BUSY 03h: オフライン 04h: ペーパーエンド 05h: プリンタ未接続または電源OFF AL=プリンタポートステータス(INT 1Ah - Function 12h参照) 解説 o プリンタのステータスをチェックせずに1バイトのデータを送信する。 u 終了ステータス・プリンタポートステータスは、データ出力直後の プリンタの状態。 関連 INT 1Ah - Function 16h 分類 PRINTER BIOS 名前 初期化(ウェイト時間設定) 対象 ハイレゾ 入力 AH=16h CX=プリンタBUSYのタイムアウト時間(単位:10ms) * 0000hを設定するとタイムアウトしない 出力 AH=終了ステータス 00h: データ送信可能 01h: BUSY 03h: オフライン 04h: ペーパーエンド 05h: プリンタ未接続または電源OFF AL=プリンタポートステータス(INT 1Ah - Function 12h参照) 解説 o プリンタインターフェースの初期化を行う。プリンタがBUSYのときのタイム アウト時間が設定できる以外、処理内容はINT 1Ah - Function 10hと同じ。 o AH,ALには現在のプリンタの状態が返る。 関連 0000:041Ch INT 1Ah - Function 10h INT 1Ah - Function 17h 分類 PRINTER BIOS 名前 プリンタインターフェースフルセントロニクス化 対象 PC-H98ノーマル,IEEE STD 1284搭載機 入力 AH=17h 出力 AH=終了ステータス 00h: データ送信可能 01h: BUSY 03h: オフライン 04h: ペーパーエンド 05h: プリンタ未接続または電源OFF 06h: モードエラー■[IEEE STD 1284搭載機のみ] AL=プリンタポートステータス(INT 1Ah - Function 12h参照) 解説 o プリンタインターフェースをフルセントロニクスモードに切り換え、 初期化を行う。初期化の処理はINT 1Ah - Function 10hと同じ。 o INT 1Ah - Function 19hの結果が「フルセントロニクス使用可能」のとき 利用できる。 u IEEE STD 1284搭載機では、プリンタインターフェース変換アダプタ (本体の36Pハーフピッチアンフェノールを簡易セントロニクス用の 14Pや20Pに変換するコネクタ)を装着している場合、モードエラーになる。 o AH,ALには現在のプリンタの状態が返る。 関連 0000:0458h bit 2,1 0000:05B3h[IEEE STD 1284搭載機] INT 1Ah - Function 10h INT 1Ah - Function 19h INT 1Ah - Function 1Ah I/O 0448h[PC-H98] I/O 0149h[IEEE STD 1284搭載機] INT 1Ah - Function 18h 分類 PRINTER BIOS 名前 ステータス取得 対象 PC-H98ノーマル,IEEE STD 1284搭載機 入力 AH=18h 出力 AH=終了ステータス 00h: データ送信完了 01h: BUSY 03h: オフライン 04h: ペーパーエンド 05h: プリンタ未接続または電源OFF 06h: モードエラー■[IEEE STD 1284搭載機のみ] AL=プリンタポートステータス(INT 1Ah - Function 12h参照) 解説 o 現在のモード(簡易・フルセントロニクス)にかかわらず、フルセントロニクス モード時のステータスを返す。 o INT 1Ah - Function 19hの結果が「フルセントロニクス使用可能」のとき 利用できる。 u IEEE STD 1284搭載機では、プリンタインターフェース変換アダプタ (本体の36Pハーフピッチアンフェノールを簡易セントロニクス用の 14Pや20Pに変換するコネクタ)を装着している場合、モードエラーになる。 関連 INT 1Ah - Function 19h INT 1Ah - Function 19h 分類 PRINTER BIOS 名前 プリンタモード取得 対象 ノーマル,ハイレゾ,PC-98LT・HA 入力 AH=19h 出力 AH=モード情報 bit 7: IEEE STD 1284使用可能フラグ(Undocumented) 1= 入出力可能 (INT 1Ah - Function 1Bh使用可能) 0= 出力オンリ (INT 1Ah - Function 1Bh使用不可能) bit 6,5:IEEE STD 1284モード■[IEEE STD 1284搭載機のみ](Undocumented) 01b= 入出力モード (INT 1Ah - Function 1C〜1Dh使用可能) 00b= 互換モード (INT 1Ah - Function 1C〜1Dh使用不可能) bit 1: 現在のプリンタインターフェースのモード 1= フルセントロニクスモード 0= 簡易セントロニクスモード bit 0: フルセントロニクス使用可能フラグ 1= フルセントロニクス使用可能 (INT 1Ah - Function 17〜1Ah使用可能) 0= フルセントロニクス使用不可能 (INT 1Ah - Function 17〜1Ah使用不可能) 解説 o プリンタインターフェースの能力と現在のモードを取得する。 フルセントロニクスが使用可能な機種は、PC-H98ノーマルと、 IEEE STD 1284搭載機。 IEEE STD 1284の入出力モードが使用可能な機種は、IEEE STD 1284搭載機 のみ。 u IEEE STD 1284搭載機では、プリンタインターフェース変換アダプタ (本体の36Pハーフピッチアンフェノールを簡易セントロニクス用の 14Pや20Pに変換するコネクタ)を装着している場合、 フルセントロニクスモードや入出力モードに切り換えることはできない。 しかし、このファンクションでは使用可能という結果が返るので注意。 o PC-9821Ap2・As2に98ハイレゾボード(PC-9821A-E02)を実装したときは、 AH=00hが返る。ノーマルモード、ハイレゾモードにかかわらず、 98ハイレゾボード上のプリンタポートが使用されるため。 o PC-H98ノーマル・IEEE STD 1284搭載機以外の機種で実行したときにも 必ずAH=00hが返る。 関連 0000:0458h 0000:05B3h[IEEE STD 1284搭載機] 表 ■IEEE STD 1284搭載機の各モードとINT 1Ah - Function 19hの結果 ----------------------------+-------------------------------- モード設定方法 |INT 1Ah - Function 19hモード情報 +-------+------------------------ |bit 6,5|bit 1 ----------------------------+-------+------------------------ 簡易セントロニクス(初期状態)|00b |0b ----------------------------+-------+------------------------ フルセントロニクスモード | | (INT 1Ah - Function 17h) |00b |1b ----------------------------+-------+------------------------ 簡易セントロニクスモード | | (INT 1Ah - Function 1Ah) |00b |0b ----------------------------+-------+------------------------ 入出力モード | | (INT 1Ah - Function 1Bh) |01b |1b ----------------------------+-------+------------------------ INT 1Ah - Function 1Ah 分類 PRINTER BIOS 名前 プリンタインターフェース簡易セントロニクス化 対象 PC-H98ノーマル,IEEE STD 1284搭載機 入力 AH=1Ah 出力 ■IEEE STD 1284搭載機 AH=終了ステータス 00h: プリンタBUSY 01h: データ送信可 ■PC-H98 AH=00h 解説 o プリンタインターフェースを簡易セントロニクスモードに設定する。 o IEEE STD 1284搭載機は、INT 1Ah - Function 10hと同じ初期化処理も行う。 このため、AHに現在のプリンタの状態が返る。 o INT 1Ah - Function 19hの結果が「フルセントロニクス使用可能」のとき 利用できる。 関連 0000:0458h 0000:05B3h INT 1Ah - Function 17h INT 1Ah - Function 19h INT 1Ah - Function 1Bh 分類 PRINTER BIOS 名前 プリンタインターフェース入出力化 Undocumented 対象 IEEE STD 1284搭載機 入力 AH=1Bh 出力 AH=終了ステータス 00h: データ送信可能 01h: BUSY 03h: オフライン 04h: ペーパーエンド 05h: プリンタ未接続または電源OFF 06h: モードエラー AL=プリンタポートステータス(INT 1Ah - Function 12h参照) 解説 o プリンタインターフェースを入出力モードに設定する。INT 1Ah - Function 1Ch,1Dhが使用可能になる。 o AH,ALには現在のプリンタの状態が返る。 o INT 1Ah - Function 19hの結果が「入出力可能」のとき利用できる。 u IEEE STD 1284搭載機では、プリンタインターフェース変換アダプタ (本体の36Pハーフピッチアンフェノールを簡易セントロニクス用の 14Pや20Pに変換するコネクタ)を装着している場合、モードエラーになる。 u 入出力モードでも、INT 1Ah - Function 11h等の出力系ファンクションは 使用できる。このとき、終了ステータスはフルセントロニクスモードと同じ になる。 関連 0000:0458h 0000:05B3h INT 1Ah - Function 1Ch 分類 PRINTER BIOS 名前 接続機器の転送機能確認 Undocumented 対象 IEEE STD 1284搭載機 入力 AH=1Ch 出力 AH=終了ステータス 00h: 正常終了 06h: モードエラー(入出力モードに設定されていない) ■AH=00hのとき AL=プリンタポートに接続されている機器の転送機能 bit 1=1: バイトモードでプリンタポートからの入力が可能 0: バイトモードでプリンタポートからの入力は不可能 bit 0=1: ニブルモードでプリンタポートからの入力が可能 0: ニブルモードでプリンタポートからの入力は不可能 解説 o プリンタポートに接続されている機器の転送機能を調べるファンクションと 思われる。詳細不明。 o INT 1Ah - Function 1Bhを実行して「入出力モード」に設定したとき 利用可能。 関連 INT 1Ah - Function 19h INT 1Ah - Function 1Dh INT 1Ah - Function 1Dh 分類 PRINTER BIOS 名前 データ入力 Undocumented 対象 IEEE STD 1284搭載機 入力 AH=1Dh AL=入力タイプ 01h : ニブルモード(4bit × 2) 02h : バイトモード(8bit × 1) 出力 AH=終了ステータス(INT 1Ah - Function 12h参照) ■AH≠06hのとき AL=プリンタポートステータス(INT 1Ah - Function 12h参照) BH=入力タイプ 01h : ニブルモード(4bit × 2) 02h : バイトモード(8bit × 1) BL=受信データ ■AH=06h(モードエラー)のとき BH=終了ステータス(INT 1Ah - Function 12h参照) BL=プリンタポートステータス(INT 1Ah - Function 12h参照) 解説 o プリンタインターフェースから入力を行う。詳細不明。 o ニブルモードでは、プリンタポートのステータス信号線を利用して、 1バイトのデータを2回に分割して受信する。 バイトモードでは、プリンタポートのデータ信号線の方向を出力時とは 逆にして、1バイトのデータを1回の転送で受信する。 o INT 1Ah - Function 1Bhを実行して「入出力モード」に設定したとき 利用可能。 入出力モード以外のときと、AL=01h,02h以外で実行したときはモードエラー。 関連 INT 1Ah - Function 19h INT 1Ah - Function 1Ch INT 1Ah - Function 30h 分類 PRINTER BIOS 名前 複数バイトデータ出力 対象 ノーマル,ハイレゾ,PC-98LT・HA 入力 AH=30h CX=出力データ長 ES:BX=データバッファの先頭アドレス 出力 ES:BX=送信終了したデータの次のアドレス CX=未出力データ長(正常終了時は0000h) ■簡易セントロニクスモードのとき AH=終了ステータス 00h: データ送信完了 02h: タイムアウト(未出力データあり) AL=不定 ■フルセントロニクスモード AH=終了ステータス 00h: データ送信完了 02h: タイムアウトで送信できなかった 03h: オフライン 04h: ペーパーエンド 05h: プリンタ未接続または電源OFF AL=プリンタポートステータス(INT 1Ah - Function 12h参照) 解説 o バッファに格納されているデータをプリンタに出力する。 u ノーマルモードのときの終了ステータスは、INT 1Ah - Function 11hと 異なるので注意。 o 簡易セントロニクスモードでは、プリンタ電源OFFまたはプリンタ未接続の とき、それを検出しないためAH=00hで戻る。簡易セントロニクスモードは BUSY状態しか検出できない。 関連 INT 1Ah - Function 11h